package _2022.hot100._48_旋转图像;


/**
 * @author： YHSimon
 * @date： 2022-04-12 11:47
 */
public class Solution {

    //自外向内顺时针循环


    //翻转代替旋转
    public void rotate2(int[][] matrix){
        int len=matrix.length;

        //水平翻转
        for(int i=0;i<len/2;i++){
            for(int j=0;j<len;j++){
                int tmp=matrix[i][j];
                matrix[i][j]=matrix[len-1-i][j];
                matrix[len-1-i][j]=tmp;
            }
        }

        //对角线翻转
        for(int i=0;i<len;i++){
            for(int j=0;j<i;j++){
                int tmp=matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=tmp;
            }
        }
    }

    //辅助数组
    public void rotate(int[][] matrix){
        int r=matrix.length;
        int[][] ans=new int[r][r];
        for(int i=0;i<r;i++){
            for(int j=0;j<r;j++){
                ans[j][r-1-i]=matrix[i][j];
            }
        }
        for(int i=0;i<r;i++){
            for(int j=0;j<r;j++){
                matrix[i][j]=ans[i][j];
//                System.out.print(matrix[i][j]+" ");
            }
//            System.out.println();
        }
    }

    public static void main(String[] args) {
        Solution s = new Solution();
        s.rotate2(new int[][]{{1,2,3},{4,5,6},{7,8,9}});

    }
}
